package ru.yandex.strictweb.example.simples;

import java.util.Date;

import ru.yandex.strictweb.scriptjava.base.CommonElements;
import ru.yandex.strictweb.scriptjava.base.NodeBuilder;
import ru.yandex.strictweb.scriptjava.base.VoidDelegate;
import ru.yandex.strictweb.scriptjava.base.custom.TableInnerNodeBuilder;
import ru.yandex.strictweb.scriptjava.base.util.IntervalIdentifier;

public class TableTimerExample extends CommonElements {
    static {
        document.body.appendChild(EL("h2").text(ajaxName(TableTimerExample.class) + " example").node);
        document.body.appendChild(new TableTimerExample().draw().node);
    }

    int n = 0;

    private NodeBuilder draw() {
        final TableInnerNodeBuilder tbody = $TBODY();

        setInterval(new VoidDelegate<IntervalIdentifier>() {
            public void voidDelegate(IntervalIdentifier intervalId) {
                n++;
                tbody.add($TR()
                    .add($TD().text("" + n))
                    .add($TD().text(dateToStringSmart(new Date())))
                );

                if(n >= 100) clearInterval(intervalId);
            }
        }, 1000);

        return $DIV().style("maxHeight", "200px").styleOverflow("auto")
        .add(
            $TABLE().border(1)
            .add(
                $THEAD().add(
                    $TR().TDH("#").TDH("Date & Time")
                )
            ).add(tbody)
        )
        ;
    }
}
